module PRBS_Detector (
    input clk,                  // 时钟输入
    input rst,                  // 异步复位
    input prbs_datain,          // 输入 PRBS 数据（逐位）
    output wire prbs_out       // 检测器预测的下一位
);
    reg [8:0] shift_reg;        // S0 ~ S8 寄存器
    // Feedback 逻辑（根据图示，S8 XOR S4）
    wire feedback;
    assign feedback = (shift_reg[8] ^ shift_reg[4])^prbs_datain;
    // PRBS 输出值（由移位寄存器内容决定，通常取 feedback 作为“期望值”）
   
    // 寄存器移位操作（按图结构推进）
    always @(posedge clk or posedge rst) 
    begin
        if (rst)
            shift_reg <= 9'b1;  // 初始化为非零状态
        else
            shift_reg <= {shift_reg[7:0], prbs_datain};
    end
    assign prbs_out = feedback;
endmodule
